package dao

import (
	"admin-system/internal/dao/auth_dao"
	"gorm.io/gorm"
)

type DaoProvider struct {
	DB             *gorm.DB
	AdminDao       *auth_dao.AdminDao
	RoleDao        *auth_dao.RoleDao
	RoleMenuDao    *auth_dao.RoleMenuDao
	MenuDao        *auth_dao.MenuDao
	RolePermission *auth_dao.RolePermissionDao
	PermissionDao  *auth_dao.PermissionDao
}

func NewDaoProvider(DB *gorm.DB) *DaoProvider {
	return &DaoProvider{
		DB:             DB,
		AdminDao:       auth_dao.NewAdminDao(DB),
		RoleDao:        auth_dao.NewRoleDao(DB),
		RoleMenuDao:    auth_dao.NewRoleMenuDao(DB),
		MenuDao:        auth_dao.NewMenuDao(DB),
		RolePermission: auth_dao.NewRolePermissionDao(DB),
		PermissionDao:  auth_dao.NewPermissionDao(DB),
	}
}
